package com.nantong.admin.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nantong.admin.domain.Product;
import com.nantong.admin.domain.model.request.product.ProductSearch;
import com.nantong.admin.domain.model.response.product.ProductVo;
import com.nantong.common.mybatis.core.page.PageQuery;
import com.nantong.common.mybatis.core.page.TableDataInfo;

/**
 * 产品Service接口
 */
public interface IProductService extends IService<Product> {
    /**
     * 分页查询产品列表
     *
     * @param productSearch 产品查询条件
     * @param pageQuery     分页参数
     * @return 产品分页列表
     */
    TableDataInfo<ProductVo> selectPageList(ProductSearch productSearch, PageQuery pageQuery);

    /**
     * 查询产品列表
     *
     * @param productSearch 产品查询条件
     * @return 产品列表
     */
    List<ProductVo> searchList(ProductSearch productSearch);

    /**
     * 根据ID查询产品信息
     *
     * @param productId 产品ID
     * @return 产品信息
     */
    Product selectProductById(Long productId);

    /**
     * 新增产品
     *
     * @param product 产品信息
     * @return 结果
     */
    int insertProduct(Product product);

    /**
     * 修改产品
     *
     * @param product 产品信息
     * @return 结果
     */
    int updateProduct(Product product);

    /**
     * 删除产品信息
     *
     * @param productId 产品ID
     * @return 结果
     */
    int deleteProductById(Long productId);
}